/**********************************************************************/
/*   ____  ____                                                       */
/*  /   /\/   /                                                       */
/* /___/  \  /                                                        */
/* \   \   \/                                                       */
/*  \   \        Copyright (c) 2003-2009 Xilinx, Inc.                */
/*  /   /          All Right Reserved.                                 */
/* /---/   /\                                                         */
/* \   \  /  \                                                      */
/*  \___\/\___\                                                    */
/***********************************************************************/

/* This file is designed for use with ISim build 0xcb73ee62 */

#define XSI_HIDE_SYMBOL_SPEC true
#include "xsi.h"
#include <memory.h>
#ifdef __GNUC__
#include <stdlib.h>
#else
#include <malloc.h>
#define alloca _alloca
#endif
extern char *STD_STANDARD;
extern char *IEEE_P_2592010699;



char *work_p_0219061338_sub_3117664542_4260647594(char *t1, char *t2, char *t3)
{
    char t4[144];
    char t5[16];
    char t9[8];
    char t12[32];
    char t21[4096];
    char *t0;
    char *t6;
    char *t7;
    char *t8;
    char *t10;
    char *t11;
    char *t13;
    char *t14;
    int t15;
    unsigned int t16;
    char *t17;
    int t18;
    char *t19;
    char *t20;
    char *t22;
    char *t23;
    char *t24;
    char *t25;
    char *t26;
    char *t27;
    unsigned char t28;
    char *t29;
    char *t30;
    char *t31;
    unsigned int t32;
    unsigned int t33;
    int t34;
    int t35;
    int t36;
    int t37;
    int t38;
    int t39;
    int t40;
    int t41;
    int t42;
    int t43;
    int t44;
    int t45;
    unsigned int t46;
    int t47;
    unsigned int t48;
    unsigned int t49;

LAB0:    t6 = (t4 + 4U);
    t7 = ((STD_STANDARD) + 240);
    t8 = (t6 + 52U);
    *((char **)t8) = t7;
    t10 = (t6 + 36U);
    *((char **)t10) = t9;
    xsi_type_set_default_value(t7, t9, 0);
    t11 = (t6 + 48U);
    *((unsigned int *)t11) = 4U;
    t13 = (t12 + 0U);
    t14 = (t13 + 0U);
    *((int *)t14) = 0;
    t14 = (t13 + 4U);
    *((int *)t14) = 255;
    t14 = (t13 + 8U);
    *((int *)t14) = 1;
    t15 = (255 - 0);
    t16 = (t15 * 1);
    t16 = (t16 + 1);
    t14 = (t13 + 12U);
    *((unsigned int *)t14) = t16;
    t14 = (t12 + 16U);
    t17 = (t14 + 0U);
    *((int *)t17) = 15;
    t17 = (t14 + 4U);
    *((int *)t17) = 0;
    t17 = (t14 + 8U);
    *((int *)t17) = -1;
    t18 = (0 - 15);
    t16 = (t18 * -1);
    t16 = (t16 + 1);
    t17 = (t14 + 12U);
    *((unsigned int *)t17) = t16;
    t17 = (t4 + 72U);
    t19 = (t1 + 3160);
    t20 = (t17 + 52U);
    *((char **)t20) = t19;
    t22 = (t17 + 36U);
    *((char **)t22) = t21;
    xsi_type_set_default_value(t19, t21, 0);
    t23 = (t17 + 40U);
    t24 = (t19 + 44U);
    t25 = *((char **)t24);
    *((char **)t23) = t25;
    t26 = (t17 + 48U);
    *((unsigned int *)t26) = 4096U;
    t27 = (t5 + 4U);
    t28 = (t2 != 0);
    if (t28 == 1)
        goto LAB3;

LAB2:    t29 = (t5 + 8U);
    *((char **)t29) = t3;
    t30 = (t6 + 36U);
    t31 = *((char **)t30);
    t30 = (t31 + 0);
    *((int *)t30) = 0;
    t7 = xsi_get_transient_memory(4096U);
    memset(t7, 0, 4096U);
    t8 = t7;
    t10 = (t12 + 28U);
    t16 = *((unsigned int *)t10);
    t32 = (t16 * 1U);
    t11 = t8;
    memset(t11, (unsigned char)2, t32);
    t28 = (t32 != 0);
    if (t28 == 1)
        goto LAB4;

LAB5:    t13 = (t17 + 36U);
    t14 = *((char **)t13);
    t13 = (t14 + 0);
    memcpy(t13, t7, 4096U);
    t7 = (t3 + 8U);
    t15 = *((int *)t7);
    t8 = (t3 + 4U);
    t18 = *((int *)t8);
    t10 = (t3 + 0U);
    t34 = *((int *)t10);
    t35 = t34;
    t36 = t18;

LAB6:    t37 = (t36 * t15);
    t38 = (t35 * t15);
    if (t38 <= t37)
        goto LAB7;

LAB9:    t7 = (t17 + 36U);
    t8 = *((char **)t7);
    t7 = (t12 + 0U);
    t15 = *((int *)t7);
    t10 = (t12 + 4U);
    t18 = *((int *)t10);
    t11 = (t12 + 8U);
    t34 = *((int *)t11);
    xsi_vhdl_check_range_of_slice(0, 255, 1, t15, t18, t34);
    t0 = xsi_get_transient_memory(4096U);
    memcpy(t0, t8, 4096U);

LAB1:    return t0;
LAB3:    *((char **)t27) = t2;
    goto LAB2;

LAB4:    t33 = (4096U / t32);
    xsi_mem_set_data(t8, t8, t32, t33);
    goto LAB5;

LAB7:    t11 = (t3 + 0U);
    t39 = *((int *)t11);
    t13 = (t3 + 8U);
    t40 = *((int *)t13);
    t41 = (t35 - t39);
    t16 = (t41 * t40);
    t32 = (16U * t16);
    t33 = (0 + t32);
    t14 = (t2 + t33);
    t19 = (t17 + 36U);
    t20 = *((char **)t19);
    t19 = (t6 + 36U);
    t22 = *((char **)t19);
    t42 = *((int *)t22);
    t19 = (t12 + 0U);
    t43 = *((int *)t19);
    t23 = (t12 + 8U);
    t44 = *((int *)t23);
    t45 = (t42 - t43);
    t46 = (t45 * t44);
    t24 = (t12 + 4U);
    t47 = *((int *)t24);
    xsi_vhdl_check_range_of_index(t43, t47, t44, t42);
    t48 = (16U * t46);
    t49 = (0 + t48);
    t25 = (t20 + t49);
    memcpy(t25, t14, 16U);
    t7 = (t6 + 36U);
    t8 = *((char **)t7);
    t18 = *((int *)t8);
    t34 = (t18 + 1);
    t7 = (t6 + 36U);
    t10 = *((char **)t7);
    t7 = (t10 + 0);
    *((int *)t7) = t34;

LAB8:    if (t35 == t36)
        goto LAB9;

LAB10:    t18 = (t35 + t15);
    t35 = t18;
    goto LAB6;

LAB11:;
}

char *work_p_0219061338_sub_1908681062_4260647594(char *t1, char *t2, unsigned char t3)
{
    char t4[72];
    char t5[8];
    char t6[16];
    char t13[8];
    char *t0;
    char *t7;
    char *t8;
    int t9;
    unsigned int t10;
    char *t11;
    char *t12;
    char *t14;
    char *t15;
    char *t16;
    char *t17;
    char *t18;
    char *t19;
    char *t21;
    char *t22;
    int t23;
    int t24;
    int t25;
    unsigned int t26;
    static char *nl0[] = {&&LAB18, &&LAB3, &&LAB4, &&LAB5, &&LAB6, &&LAB7, &&LAB8, &&LAB9, &&LAB10, &&LAB11, &&LAB12, &&LAB13, &&LAB14, &&LAB15, &&LAB16, &&LAB17};

LAB0:    t7 = (t6 + 0U);
    t8 = (t7 + 0U);
    *((int *)t8) = 3;
    t8 = (t7 + 4U);
    *((int *)t8) = 0;
    t8 = (t7 + 8U);
    *((int *)t8) = -1;
    t9 = (0 - 3);
    t10 = (t9 * -1);
    t10 = (t10 + 1);
    t8 = (t7 + 12U);
    *((unsigned int *)t8) = t10;
    t8 = (t4 + 4U);
    t11 = ((IEEE_P_2592010699) + 2332);
    t12 = (t8 + 52U);
    *((char **)t12) = t11;
    t14 = (t8 + 36U);
    *((char **)t14) = t13;
    xsi_type_set_default_value(t11, t13, t6);
    t15 = (t8 + 40U);
    *((char **)t15) = t6;
    t16 = (t8 + 48U);
    *((unsigned int *)t16) = 4U;
    t17 = (t5 + 4U);
    *((unsigned char *)t17) = t3;
    t18 = (char *)((nl0) + t3);
    goto **((char **)t18);

LAB2:    t7 = (t8 + 36U);
    t11 = *((char **)t7);
    t7 = (t6 + 12U);
    t10 = *((unsigned int *)t7);
    t10 = (t10 * 1U);
    t0 = xsi_get_transient_memory(t10);
    memcpy(t0, t11, t10);
    t12 = (t6 + 0U);
    t9 = *((int *)t12);
    t14 = (t6 + 4U);
    t23 = *((int *)t14);
    t15 = (t6 + 8U);
    t24 = *((int *)t15);
    t16 = (t2 + 0U);
    t18 = (t16 + 0U);
    *((int *)t18) = t9;
    t18 = (t16 + 4U);
    *((int *)t18) = t23;
    t18 = (t16 + 8U);
    *((int *)t18) = t24;
    t25 = (t23 - t9);
    t26 = (t25 * t24);
    t26 = (t26 + 1);
    t18 = (t16 + 12U);
    *((unsigned int *)t18) = t26;

LAB1:    return t0;
LAB3:    t19 = (t1 + 6600);
    t21 = (t8 + 36U);
    t22 = *((char **)t21);
    t21 = (t22 + 0);
    memcpy(t21, t19, 4U);
    goto LAB2;

LAB4:    t7 = (t1 + 6604);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB5:    t7 = (t1 + 6608);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB6:    t7 = (t1 + 6612);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB7:    t7 = (t1 + 6616);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB8:    t7 = (t1 + 6620);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB9:    t7 = (t1 + 6624);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB10:    t7 = (t1 + 6628);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB11:    t7 = (t1 + 6632);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB12:    t7 = (t1 + 6636);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB13:    t7 = (t1 + 6640);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB14:    t7 = (t1 + 6644);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB15:    t7 = (t1 + 6648);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB16:    t7 = (t1 + 6652);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB17:    t7 = (t1 + 6656);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB18:    t7 = (t1 + 6660);
    t12 = (t8 + 36U);
    t14 = *((char **)t12);
    t12 = (t14 + 0);
    memcpy(t12, t7, 4U);
    goto LAB2;

LAB19:;
}


void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

void ieee_p_2592010699_sub_3130575329_503743352();

extern void work_p_0219061338_init()
{
	static char *se[] = {(void *)work_p_0219061338_sub_3117664542_4260647594,(void *)work_p_0219061338_sub_1908681062_4260647594};
	xsi_register_didat("work_p_0219061338", "isim/proc_alu_isim_beh.exe.sim/work/p_0219061338.didat");
	xsi_register_subprogram_executes(se);
	xsi_register_resolution_function(1, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(2, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(3, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(4, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(5, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(6, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(7, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(8, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(9, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
	xsi_register_resolution_function(11, 2, (void *)ieee_p_2592010699_sub_3130575329_503743352, 8);
}
